package com.maiko.maikoaiagent.rag;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.document.Document;
import org.springframework.ai.transformer.KeywordMetadataEnricher;

import java.util.List;

/**
 * 文档关键词增强工具类
 * 用于通过ChatModel对文档列表进行关键词提取和增强处理
 * @author: Maiko7
 * @create: 2025-06-16 8:29
 */
public class MyKeywordEnricher {
    // 注入的ChatModel实例，用于执行自然语言理解任务
    @Resource
    private ChatModel dashscopeChatModel;

    /**
     * 对输入的文档列表进行关键词元数据增强
     * 使用DashScope的ChatModel为每个文档生成5个相关关键词，并将这些关键词添加到文档的元数据中
     *
     * @param documents 需要被增强的原始文档列表
     * @return 包含新增关键词元数据的文档列表
     */
    public List<Document> enrichDocuments(List<Document> documents) {
        // 创建KeywordMetadataEnricher实例，指定使用哪个ChatModel以及要生成的关键词数量
        KeywordMetadataEnricher keywordMetadataEnricher = new KeywordMetadataEnricher(dashscopeChatModel, 5);
        // 执行关键词增强操作并返回结果
        return keywordMetadataEnricher.apply(documents);
    }


}




